import pandas as pd
import matplotlib.pyplot as plt
import json
import numpy as np
'''
aaa=pd.read_json('./qwe.json',lines=True,dtype = 'dict')    #读取json格式文件，元素保存在列表中
bbb=aaa.drop(labels=['介绍','_id','别名','导演','主演'],axis=1,inplace=False)   #删除列数据
bbb.to_csv('as.csv',index=False,columns=['名称','类型','上映时间','状态','地区','语言','更新时间'])
'''
a=pd.read_csv('./分析/as.csv',encoding='gbk',dtype='str')   #定义类型确保没有小数点
#处理数据
b=a.drop_duplicates(subset=['名称'])      #对数据去重
test=b.dropna(how='any',subset=['上映时间'],inplace=False)     #对上映时间去空值
c_d=test.dropna(how='any',subset=['类型'],inplace=False)      #对类型去空值
c_test=c_d[['名称','上映时间']].groupby(by=['上映时间']).count()     #用于检测上映时间是否存在差异
c=c_d.drop(c_d[(c_d['上映时间']=='19524') | (c_d['上映时间']=='19530') | (c_d['上映时间']=='19630') |
(c_d['上映时间']=='19637') | (c_d['上映时间']=='19900') |(c_d['上映时间']=='19991') | (c_d['上映时间']=='19994') | (c_d['上映时间']=='20014') |(c_d['上映时间']=='20117')
| (c_d['上映时间']=='20165') | (c_d['上映时间']=='20196') ] .index  )
#asf=c[['名称','上映时间']].groupby(by=['上映时间']).count()     #年份电影总数
d=c.drop(c[(c['上映时间'] != '2010') & (c['上映时间'] != '2011') &(c['上映时间'] != '2011')
&(c['上映时间'] != '2011')&(c['上映时间'] != '2012')&(c['上映时间'] != '2013')&(c['上映时间'] != '2014')
&(c['上映时间'] != '2015') &(c['上映时间'] != '2016')&(c['上映时间'] != '2017')&(c['上映时间'] != '2018')
&(c['上映时间'] != '2019')&(c['上映时间'] != '2020')].index)
#得到表格
asfdfad=d[['名称','上映时间']].groupby(by=['上映时间']).count()     #年份电影总数
gds=d[['类型','上映时间','名称']].groupby(by=['类型','上映时间']).count()       #年份类型电影总数
fdj=d[['语言','名称']].groupby(by=['语言']).count()       #年份类型电影总数
sdaf=d[['语言','上映时间','名称']].groupby(by=['语言','上映时间']).count()       #年份类型电影总数
asf=d[['名称','地区']].groupby(by=['地区']).count()     #年份电影总数
type1=gds.iloc[:11,:]                                         #剧情
type1_1=tuple(type1['名称'])                                  #剧情元组
type2=gds.iloc[11:22,:]                                     #动作
type2_2=tuple(type2['名称'])                                 #动作元组
type3=gds.iloc[22:33,:]                                     #动漫
type3_3=tuple(type3['名称']) 
type4=gds.iloc[33:44,:]                                     #喜剧
type4_4=tuple(type2['名称']) 
type5=gds.iloc[44:55,:]                                     #恐怖
type5_5=tuple(type2['名称']) 
type6=gds.iloc[55:66,:]                                     #战争
type6_6=tuple(type2['名称']) 
type7=gds.iloc[66:77,:]                                     #爱情
type7_7=tuple(type2['名称']) 
type8=gds.iloc[77:88,:]                                    #科幻
type8_8=tuple(type2['名称'])
type9=gds.iloc[77:88,:]                                 #记录
type9_9=tuple(type9['名称'])
type=tuple(asfdfad['名称'])
type=tuple(asfdfad['名称'])                                #总数元组
total=pd.concat([pd.DataFrame(type1_1),pd.DataFrame(type2_2),pd.DataFrame(type3_3),
           pd.DataFrame(type4_4),pd.DataFrame(type5_5),pd.DataFrame(type6_6),pd.DataFrame(type7_7),
           pd.DataFrame(type8_8),pd.DataFrame(type9_9),pd.DataFrame(type)],axis=1)
total['年份']=['2010','2011','2012','2013','2014','2015','2016','2017','2018','2019','2020']
total.columns=['剧情','动作','动漫','喜剧','恐怖','战争','爱情','科幻','记录','总数','年份']

plt.figure(figsize=(8,7)) #设置画布
plt.rcParams['font.sans-serif']='SimHei'   #设置中文显示
year=tuple(total['年份'])
sum=tuple(total['总数'])
plt.plot(year,sum,color='r',linestyle='--')
plt.xlabel('年份')
plt.ylabel('电影总数')
plt.title('2010年到2020年电影总数的折线图')
plt.show()

import numpy as np
plt.figure(figsize=(12,8))  #设置画布
juqi=total['剧情'].sum()
dongzuo=total['动作'].sum()
dongman=total['动漫'].sum()
xiju=total['喜剧'].sum()
kongbu=total['恐怖'].sum()
zhanzheng=total['战争'].sum()
aiqi=total['爱情'].sum()
kehuan=total['科幻'].sum()
jilu=total['记录'].sum()
label=['剧情','动作','动漫','喜剧','恐怖','战争','爱情','科幻','记录']
plt.bar(range(9),(juqi,dongzuo,dongman,xiju,kongbu,zhanzheng,aiqi,kehuan,jilu),width=0.5)
plt.xticks(range(9),label)
plt.xlabel('电影类型')
plt.ylabel('2010年到2020年电影类型总数')
plt.show()